package hot;

import java.util.HashSet;
import java.util.Set;

public class onehundredtwentyeight {
        public static int longestConsecutive(int[] nums) {
//            Set<Integer> st = new HashSet<>();
//            for (int num : nums) {
//                st.add(num); // 把 nums 转成哈希集合
//            }
//
//            int ans = 0;
//            for (int x : st) { // 遍历哈希集合
//                if (st.contains(x - 1)) { // 如果 x 不是序列的起点，直接跳过
//                    continue;
//                }
//                // x 是序列的起点
//                int y = x + 1;
//                while (st.contains(y)) { // 不断查找下一个数是否在哈希集合中
//                    y++;
//                }
//                // 循环结束后，y-1 是最后一个在哈希集合中的数
//                ans = Math.max(ans, y - x); // 从 x 到 y-1 一共 y-x 个数
//            }
//            return ans;

            // 错误的实现：直接遍历数组而不是哈希集合
                int ans = 0;
                for (int i = 0; i < nums.length; i++) {
                    int x = nums[i];
                    // 检查是否是序列起点
                    boolean isStart = true;
                    for (int j = 0; j < nums.length; j++) {
                        if (nums[j] == x - 1) {
                            isStart = false;
                            break;
                        }
                    }

                    if (isStart) {
                        int y = x + 1;
                        // 查找连续序列
                        boolean found = true;
                        while (found) {
                            found = false;
                            for (int num : nums) {
                                if (num == y) {
                                    found = true;
                                    y++;
                                    break;
                                }
                            }
                        }
                        ans = Math.max(ans, y - x);
                    }
                }
                return ans;

        }

    public static void main(String[] args) {
//            int[] nums={100,4,200,1,3,2};
        int[] nums={1,1,1,2,3,4};
        int i = longestConsecutive(nums);
        System.out.println(i);

    }

}
